package interview;

public class interview_02_05 {
    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        boolean flag=false;
        ListNode head=new ListNode(0);
        ListNode p=head;
        while(l1!=null&&l2!=null){
            int temp=l1.val+l2.val;
            if(flag) temp+=1;
            if(temp>=10){
                temp-=10;
                flag=true;
            }
            else flag=false;
            p.next=new ListNode(temp);
            p=p.next;
            l1=l1.next;
            l2=l2.next;
        }
        while(l1!=null){
            int temp=l1.val;
            if(flag) temp+=1;
            if(temp>=10){
                temp-=10;
                flag=true;
            }
            else flag=false;
            p.next=new ListNode(temp);
            p=p.next;
            l1=l1.next;
        }
        while(l2!=null){
            int temp=l1.val;
            if(flag) temp+=1;
            if(temp>=10){
                temp-=10;
                flag=true;
            }
            else flag=false;
            p.next=new ListNode(temp);
            p=p.next;
            l2=l2.next;
        }
        if(flag) {
            p.next=new ListNode(1);
        }
        return head.next;
    }
}
